;主窗口控制子程序
.CODE

ErrorHandler PROC
;显示合适的系统错误消息
.data
pErrorMsg DWORD ? ;指向错误消息的指针
messageID DWORD ?
.code
    INVOKE GetLastError ;在EAX中返回消息ID
	mov messageID,eax
	
	;获取对应的消息字符串
	INVOKE FormatMessage,FORMAT_MESSAGE_ALLOCATE_BUFFER+FORMAT_MESSAGE_FROM_SYSTEM,NULL,messageID,NULL,ADDR pErrorMsg,NULL,NULL
	
	;显示错误消息
	INVOKE MessageBox,NULL,pErrorMsg,ADDR szErrorTitle,MB_ICONERROR+MB_OK
	
	;释放消息字符串
	INVOKE LocalFree,pErrorMsg
	ret
ErrorHandler ENDP

Str_length PROC USES edi,lpString:PTR BYTE;指向字串的指针，使用edi 返回时释放
	mov edi,lpString
	mov eax,0
L1:cmp BYTE ptr [edi],NULL
	je L2
	inc edi
	inc eax
	jmp L1
L2:ret
Str_length ENDP
